package com.okq.util;

import com.okq.entity.Log;
import com.okq.entity.Role;
import com.okq.entity.User;
import com.okq.service.ILogService;
import com.okq.service.IRoleService;
import org.apache.commons.lang.StringUtils;

/**
 * 描述 : 公用类
 * 作者 : zdl
 * 日期 : 2017/7/4 17:29
 */
public class PublicClass {

    /**
     * 添加系统日志
     *
     * @param userName       用户名
     * @param loginName      登录名
     * @param module         模块
     * @param type           日志类型  0：未知 1：登陆 2：操作 3：错误
     * @param content        日志内容
     * @param logServiceImpl 系统日志接口
     */
    public static void addLog(String userName, String loginName, String module, Integer type, String content, ILogService logServiceImpl) {
        Log log = new Log();
        log.setId(BaseTool.getPK());
        if (StringUtils.isNotBlank(userName)) {
            log.setUserName(userName);
        }
        if (StringUtils.isNotBlank(loginName)) {
            log.setLoginName(loginName);
        }
        if (StringUtils.isNotBlank(loginName)) {
            log.setLoginName(loginName);
        }
        if (StringUtils.isNotBlank(module)) {
            log.setModule(module);
        }
        if (type != null) {
            log.setType(type);
        }
        if (StringUtils.isNotBlank(content)) {
            log.setContent(content);
        }
        logServiceImpl.saveLog(log);
    }

    /**
     * 获取登录用户角色类型
     *
     * @param loginUser       登录用户
     * @param roleServiceImpl 角色接口
     * @return 类型
     */
    public static Integer getRoleTypeByLoginUser(User loginUser, IRoleService roleServiceImpl) {
        if (loginUser != null) {
            String roleId = loginUser.getRoleId();
            if (StringUtils.isNotBlank(roleId)) {
                Role role = roleServiceImpl.getRoleById(roleId);
                if (role != null) {
                    return role.getRoleType();
                }
            }
        }
        return -1;
    }

}
